﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entities;

namespace BLL
{
	public class QLThongBaoLoiMayTinh
	{
		public static IEnumerable<ThongBaoLoiMayTinh> GetAll()
		{
			return Generic.GetAll<ThongBaoLoiMayTinh>();
		}
        public static ActionResult Insert(ThongBaoLoiMayTinh tbltm)
        {
            ActionResult kq = new ActionResult("xóa lỗi máy tính");
            if (tbltm.TenPhanBiLoi == "")
            {
                kq.Exceptions.Add(new Exception("tên phần bị lỗi phải khác rỗng "));
            }
            if (tbltm.ChiTietLoi == "")
            {
                kq.Exceptions.Add(new Exception("chi tiết lỗi  phải khác rỗng "));
            }

            try
            {
                Generic.Insert<ThongBaoLoiMayTinh>(tbltm);
            }
            catch (Exception ex)
            {
                kq.Exceptions.Add(ex);
            }
            return kq;
        }
		public static int Delete(ThongBaoLoiMayTinh lmt)
		{
			return Generic.DeleteByCondition<ThongBaoLoiMayTinh>(lmt1 => lmt1.MaLoiMT == lmt.MaLoiMT);
		}
		public static ActionResult DeleteByID(int malmt)
		{
            ActionResult kq = new ActionResult("xóa lỗi máy tính");
            try
            {
                Generic.DeleteByCondition<ThongBaoLoiMayTinh>(x => x.MaLoiMT == malmt);
            }
            catch (Exception ex)
            {
                kq.Exceptions.Add(ex);
            }
            return kq;
		}
		public static int DeleteAll(IEnumerable<ThongBaoLoiMayTinh> ps)
		{
			return Generic.DeleteByCondition<ThongBaoLoiMayTinh>(lmt => ps.Where(x => x.MaLoiMT == lmt.MaLoiMT).Count() == 1);
		}
		public static int Update(ThongBaoLoiMayTinh lmt)
		{
			return Generic.EditByCondition<ThongBaoLoiMayTinh>(k => k.MaLoiMT == lmt.MaLoiMT, k =>
			{
				k.MaLoiMT = lmt.MaLoiMT;
				k.MaLoiMT = lmt.MaLoiMT;
				k.TenPhanBiLoi = lmt.TenPhanBiLoi;
				k.ChiTietLoi = lmt.ChiTietLoi;
				
			});
		}
		public static IEnumerable<ThongBaoLoiMayTinh> FindByCondition(Func<ThongBaoLoiMayTinh, bool> func)
		{
			return Generic.FindByCondition<ThongBaoLoiMayTinh>(func);
		}
		public static ThongBaoLoiMayTinh FindByID(int MaLoiMT)
		{
			return Generic.FindByCondition<ThongBaoLoiMayTinh>(x => x.MaLoiMT == MaLoiMT).ToList()[0];
		}
	}
}
